﻿using System.Data.SqlClient;
using KMF.Common;

namespace KMF.DAL
{
    public partial class SettingDb
    {
        /// <summary>
        /// Thêm bản ghi mới vào bảng Setting
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int AddSetting(SettingDto model)
        {
            var dao = SharedSqlDao;
            var command = dao.GetDbSprocCommand("WSPX_Setting_Add");
            try
            {
                command.Parameters.Add(dao.CreateParameter("@Name", model.Name));
                command.Parameters.Add(dao.CreateParameter("@Value", model.Value));
                return (int)command.ExecuteScalar();
            }
            finally
            {
                command.Connection.Close();
            }
        }

        /// <summary>
        /// Lấy về bản ghi trong bảng Setting theo name 
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static SettingDto GetByName(string name)
        {
            var dao = SharedSqlDao;
            var command = dao.GetDbSprocCommand("WSPX_Setting_GetValueByName");
            try
            {
                command.Parameters.Add(dao.CreateParameter("@Name", name));
                return dao.GetSingleDTO<SettingDto>(ref command);
            }
            finally
            {
                command.Connection.Close();
            }
        }

        /// <summary>
        /// Cập nhật bản ghi trong bảng Setting
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int UpdateSetting(SettingDto model)
        {
            var dao = SharedSqlDao;
            SqlCommand command = dao.GetDbSprocCommand("WSPX_Setting_Update");
            try
            {
                command.Parameters.Add(dao.CreateParameter("@Id", model.Id));
                command.Parameters.Add(dao.CreateParameter("@Name", model.Name));
                command.Parameters.Add(dao.CreateParameter("@Value", model.Value));
                int result = (int)command.ExecuteScalar();
                return result;
            }
            finally
            {
                command.Connection.Close();
            }
        }//End method
    }
}
